СУБД, или Системы управления базами данных

Источники:

  1. Stepik: Введение в базы данных (https://stepik.org/course/551)

  2. Книга: Распределенные данные. Алгоритмы работы современных систем хранения информации. Алекс Петров. 2021

  3. Введение в системы баз данных. К. Дж. Дейт. 2005

Введение

Основные определения

Система баз данных - компьютеризированная система хранения однотипных записей База данных - хранилище или контейнер для некоторого набора файлов данных, занесенных в компьютер.

Пользователям этой системы предоставляется возможность выполнять (или передавать системе запросы на выполнение) множество различных операций над такими файлами, например:

  • добавлять новые пустые файлы в базу данных;

  • вставлять новые данные в существующие файлы;

  • получать данные из существующих файлов;

  • удалять данные из существующих файлов;

  • изменять данные в существующих файлах;

  • удалять существующие файлы из базы данных.

Note

Распределенные системы управления базами данных являются неотъемлемой частью большинства предприятий и подавляющего большинства программных приложений.

Приложения отвечают за логику и взаимодействие с пользователем, в то время как системы управления базами данных (СУБД) обеспечивают целостность, согласованность и избыточность данных.

План курса (позже удалить)

  • Базовые операции SQL - “как стать на “ты” с базами данных”

  • Основы реляционных СУБД - “как написать запрос любой сложности”

  • Проектирование БД - “от концепции до физической структуры”

  • Использование ORM - “связь БД с концепциями ООП”

  • Администрирование MySQL и оптимизация запросов - “как стать системным администратором БД”

  • Нереляционные СУБД - “когда и как сказать “Not Only SQL””

Технологии и инструменты курса

СУБД:

  • MySQL - доминирующая РСУБД среди свободного ПО

  • MongoDB - наиболее популярная документоориентированная СУБД (подходит для проектирвоания баз данных с нечеткой или часто меняющейсчя схемой)

  • Redis - наиболее стабильная СУБД типа “ключ-значение” (его преимущество - быстрый доступ к данным)

Проектирование:

  • MySQL Workbench - популярный и свободный инструмент выполнения запросов и проектирования БД

  • Ваш любимый ORM (наш - Django ORM) - на любом популярном языке есть несколько вариантов

Что такое база данных?

Определений много, но есть схожие характеристики: - Хранит данные по правилам (концепция, схема) - Можно управлять данными по правилам - Нужна для удовлетворения информационных потребностей

Основные понятия баз данных

Определений много, но есть схожие характеристики: - Хранит данные по правилам (концепция, схема) - Можно управлять данными по правилам - Нужна для удовлетворения информационных потребностей

Сущность - класс, хранящийся в базе данных, таблица. (Некоторая основа, наделенная смыслом)

Note

Не всякая таблица является сущностью. Некоторые таблицы используются для связывания сущностей.

Объект - экземпляр сущности или класса. Атрибут - некоторое свойство характеризующие сущность, название столбца в таблице.

Кортеж - строка в таблице, набор значений конкретных атрибутов.

Домен - набор допустимых значений атрибута. Например, пол: мужской и женский

Идентификатор - атрибут с уникальным значением для данной таблицы. Как правило - это целое число.

  • Банки, картотеки, любые крупные системы, в которых нужно хранить и изменять данные, а также иметь доступ к ним с разными ролями. (системы, где уже не обойтись xls-файлом)

Пример: в базе любого банка определены сущности пользователя, его долгов, операций - Веб-сайты - сервер использует БД для удобства управления информацией и взаимодействия с пользователем. Пример: онлайн-магазины оперируют сущностями, корзин, покупателей, скидок, акций - Приложения (мобильные и десктопные) используют локальные базы для удобства хранения данных по некоторым правилам. - Любой программный продукт, подразумевающий отделение бизнеслогики и уровня хранения данных.

Основные компоненты: - Ядро - процессы, сеть, память, файловая система и т.д. - Диспетчер данных - транзакции, кэш - Диспетчер запросов - парсер запроса, проверяющий валидность запросов; оптимизатор, исполнитель - Набор инструментов для служебных операций - резервное копирование, восстановление, мониторинг

Преимущества: - Простая схема данных для пользователя. - Логическая и физическая независимость от данных. - Целостность и защищенность данных. - Методологический подход к проектированию. Недостатки: - Относительно низкая скость доступа к данным. - Не универсальное решение для любой предметной области. - Меньшая гибкость при добавлении своих типов данных и операций.

Язык SQL

Диалекты: - Oracle (Самый распространенный СУБД) - MySQL (Самый популярный свободный СУБД) - PostgreSQL (Постреляционная СУБД) - MS SQL (СУБД, распространенная в Windows) - SQLite (СУБД, используемая для локальных приложений) - Access (Аналог SQLite от Microsoft)

Первый пример

  1. Надо установить сервер MySQL и MySQL Workbench. Для этого скачивается и запускается MySQL-инсталлер и там выбираются MySQL Server и MySQL Workbench

  2. Далее клонируем с гита курса примеры БД

  3. После этого необходимо сначала File -> Open Model…->